Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

project: Allow running multiple instances of a single language server within a single worktree #22182

Open
wants to merge 108 commits into
base: main
Choose a base branch
from

Conversation

osiewicz
Copy link
Contributor

This PR introduces a new entity called Project Tree which is responsible for finding subprojects within a worktree;
a subproject is a language-specific subset of a worktree which should be accurately tracked on the language server side. We'll have an ability to set multiple disjoint workspaceFolders on language server side OR spawn multiple instances of a single language server (which will be the case with e.g. Python language servers, as they need to interact with multiple disjoint virtual environments).
Project Tree assumes that projects of the same LspAdapter kind cannot overlap. Additionally project nesting is not allowed within the scope of a single LspAdapter.

Closes #5108

Release Notes:

  • Language servers now track their working directory more accurately.

@cla-bot cla-bot bot added the cla-signed The user has signed the Contributor License Agreement label Dec 18, 2024
osiewicz added a commit that referenced this pull request Jan 21, 2025
…ymbol fallbacks

This unblocks work on #22182; a single language server might actually be required by multiple languages (think of e.g. C/C++), in which case it doesn't make sense to use a single grammar. We already use primary language of a buffer for highlights and this PR makes this the only supported syntax highlighting flavour for returned symbols.
osiewicz added a commit that referenced this pull request Jan 21, 2025
…ymbol highlighting (#23401)

This unblocks work on #22182; a single language server might actually be
required by multiple languages (think of e.g. C/C++,
Javascript/Typescript), in which case it doesn't make sense to use a
single grammar. We already use primary language of a buffer for
highlights and this PR makes this the only supported syntax highlighting
flavour for returned symbols.

Closes #ISSUE

Release Notes:

- N/A
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
cla-signed The user has signed the Contributor License Agreement
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Rust Analyzer doesn't work with multiple subprojects
1 participant